package com.usian.user.feign;

import com.github.pagehelper.PageInfo;
import com.usian.common.dto.CourseDto;
import com.usian.common.pojo.Catalogue;
import com.usian.common.pojo.Cou;
import com.usian.common.pojo.Lab;
import com.usian.common.pojo.ProgressData;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@FeignClient(value = "day05-mapenghui-Cou")
public interface CourseFeign {

    @GetMapping("cou/getTrainCourse/{userId}")
    Cou getTrainCourse(@PathVariable(value = "userId") Integer userId);

    @GetMapping("cou/getHotCourse")
    List<Cou> getHotCourse();

    @GetMapping("cou/getNewestClass")
    List<Cou> getNewestClass();

    @PostMapping("cou/getCourse")
    PageInfo<Cou> getCourseList(@RequestBody CourseDto courseDto);

    @PostMapping("cou/getNewestCourseList")
    PageInfo<Cou> getNewestCourseList(@RequestBody CourseDto courseDto);

    @GetMapping("cou/getLab")
    List<Lab> getLab();

    @PostMapping("cou/getHotCourseList")
    PageInfo<Cou> getHotCourseList(CourseDto courseDto);

    @GetMapping("cou/getCourseById")
    Cou getCourseById(@RequestParam("courseId") Integer courseId);

    @GetMapping("cou/getProgressData")
    ProgressData getProgressData(@RequestParam("courseId") Integer courseId, @RequestParam("userId") Integer userId);

    @GetMapping("cou/getCatalogue")
    List<Catalogue> getCatalogue(@RequestParam("courseId") Integer courseId);

    /**
     * @param cataId
     * @param userId
     * @param courseId
     */
    @GetMapping("cou/setProgress")
    void setProgress(@RequestParam("cataId") Integer cataId, @RequestParam("userId") Integer userId, @RequestParam("courseId") Integer courseId);
}
